import ConfigableTable from '../ConfigableTable'

import { helpColumnsRender } from './utils'

/**
 * @typedef {Object} OtherProps
 * @property {string} [configKey] 表格的唯一key，本地根据key存放配置信息，showConfig为true时必填
 * @property {Boolean} [showIndex] 显示序号，默认true
 * @property {boolean} [showConfig] 是否显示设置
 * @property {boolean} [autoSizeHeight] 是否自动调整高度，如果设置了false，则需要给table的scroll.y设置，不设置的时候默认为500
 * @property {Array<import("./utils").ColumnsProps>} [columns] 表格项配置
 * @property {import("react")} [beforePagination] 页码前面的内容
 */

/**
 * @typedef {import("antd/es/table").TableProps & OtherProps} AekTableProps
 */

/**
 * 自定义table，支持表格头配置
 * @param {AekTableProps} props
 * @returns
 */
const AekTable = props => {
  const { configKey, showIndex = true, showConfig = true, autoSizeHeight = true, columns, ...otherProps } = props
  if (!configKey) {
    throw new Error('configKey不能为空')
  }
  helpColumnsRender(columns)
  return (
    <ConfigableTable
      configKey={configKey}
      showConfig={showConfig}
      showIndex={showIndex}
      columns={columns}
      autoSizeHeight={autoSizeHeight}
      {...otherProps}
    />
  )
}

export default AekTable
